package com.cskaoyan.basic._6block;

/**
 * 什么是代码块？
 * 代码块的定义是：
 *  由若干条Java语句组成，并且用一对大括号括起来的结构，叫做代码块。
 *
 * 很显然，我们写的main方法就是一个代码块。
 * 常见的代码块有哪些：
 *      1.方法的方法体的大括号
 *      2.类体中的大括号
 *          解释：
 *          类体：指的是类名后面跟的一个大括号，注意类体不是代码块
 *      3.以上代码块大括号内部的大括号，也是代码块
 *
 * 那么代码块有什么用处呢？主要是：
 * 代码块决定了块中的变量的作用域，也就是块中的变量只在当前块中生效。
 * 这意味着同一个代码块中，不可能有同名的变量。
 * 定义在块中的变量，被块限制了作用域，称之为局部变量。这是一个非常重要的概念~
 *
 * 局部变量是Java中三种变量类型的一种，是非常非常常见的，局部变量的概念一定要理解。
 *
 * 最后谈两点注意事项：
 * 代码块是可以嵌套定义的。
 * 关于代码块，我们后面会专门讲解，这里先暂且不谈。
 *
 * @since 14:46
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {

    {
        // 代码块
        {

        }
    }

    public static void main(String[] args) {
        int a = 10;
        // 代码块
        {
            // 代码块
            // Variable 'a' is already defined in the scope
            // int a = 10;
            int b = 10;
        }
        int b = 10;

        if (true) {
            // 代码块
        }
    }
}
